!pip install opencv-python pillow scikit-image
path = 'E:/IAM/imagens_am/'
from PIL import Image
from pylab import *
im_1 = array(Image.open(path + 'arara.jpg'))
im_1
array([[[ 57, 124, 53],
[ 56, 123, 52],
[ 55, 122, 51],
...,
[ 62, 100, 41],
[ 62, 100, 41],
[ 62, 100, 41]],
[[ 59, 126, 55],
[ 58, 125, 54],
[ 57, 124, 53],
...,
[ 62, 100, 41],
[ 61, 99, 40],
[ 61, 99, 40]],
[[ 59, 126, 55],
[ 59, 126, 55],
[ 58, 125, 54],
...,
[ 62, 100, 41],
[ 62, 100, 41],
[ 61, 99, 40]],
...,
[[ 80, 46, 18],
[ 82, 48, 20],
[ 86, 52, 24],
...,
[ 40, 68, 10],
[ 37, 65, 7],
[ 36, 64, 6]],
[[ 80, 46, 18],
[ 83, 49, 21],
[ 88, 54, 26],
...,
[ 39, 67, 9],
[ 37, 65, 7],
[ 36, 64, 6]],
[[ 80, 45, 17],
[ 85, 50, 22],
[ 90, 56, 28],
...,
[ 38, 66, 8],
[ 36, 64, 6],
[ 35, 63, 5]]], dtype=uint8)
imshow(im_1)
<matplotlib.image.AxesImage at 0x123b5d665b0>
def plot_imagens_2(img1, tit1, img2, tit2, res):
figure(figsize = res)
plt.subplot(1, 2, 1), plt.imshow(img1), plt.title(tit1)
plt.xticks([]), plt.yticks([])
plt.subplot(1, 2, 2), plt.imshow(img2), plt.title(tit2)
plt.xticks([]), plt.yticks([])
plt.show()
def plot_imagens_3(img1, tit1, img2, tit2, img3, tit3, res):
figure(figsize = res)
plt.subplot(1, 3, 1), plt.imshow(img1), plt.title(tit1)
plt.xticks([]), plt.yticks([])
plt.subplot(1, 3, 2), plt.imshow(img2), plt.title(tit2)
plt.xticks([]), plt.yticks([])
plt.subplot(1, 3, 3), plt.imshow(img3), plt.title(tit3)
plt.xticks([]), plt.yticks([])
plt.show()
plot_imagens_2(im_1, 'teste1', im_1, 'teste2', (20, 20))
plot_imagens_3(im_1, 'teste1', im_1, 'teste2', im_1, 'teste3', (20, 20))
im_1.shape
(2367, 3557, 3)
im_2 = array(Image.open(path + 'placa_saltpepper.png'))
im_2.shape
(440, 455)
im_2
array([[246, 247, 255, ..., 255, 255, 255],
[247, 255, 255, ..., 255, 0, 0],
[249, 250, 251, ..., 0, 0, 0],
...,
[255, 0, 232, ..., 156, 255, 255],
[233, 233, 232, ..., 255, 149, 149],
[233, 0, 0, ..., 0, 150, 150]], dtype=uint8)
type(im_1)
numpy.ndarray
type(im_2)
numpy.ndarray
im_1.ravel()
array([ 57, 124, 53, ..., 35, 63, 5], dtype=uint8)
im_1.ravel().shape
(25258257,)
plt.hist(im_1.ravel())
(array([2481894., 4792124., 5747287., 4419498., 3176522., 1858291.,
1249806., 731218., 371727., 429890.]),
array([ 0. , 25.5, 51. , 76.5, 102. , 127.5, 153. , 178.5, 204. ,
229.5, 255. ]),
<BarContainer object of 10 artists>)
im_3 = array(Image.open(path + 'psg_praia.jpg'))
plt.hist(im_3.ravel())
(array([245684., 180568., 236019., 235457., 260259., 342614., 496208.,
565854., 650930., 234307.]),
array([ 0. , 25.5, 51. , 76.5, 102. , 127.5, 153. , 178.5, 204. ,
229.5, 255. ]),
<BarContainer object of 10 artists>)
from PIL import ImageOps
im_4 = Image.fromarray(np.uint8(im_3))
img_eq = ImageOps.equalize(im_4)
img_eq = array(img_eq)
plt.hist(img_eq.ravel())
(array([350539., 332717., 355551., 345008., 354328., 341760., 345017.,
340786., 342013., 340181.]),
array([ 0. , 25.5, 51. , 76.5, 102. , 127.5, 153. , 178.5, 204. ,
229.5, 255. ]),
<BarContainer object of 10 artists>)
plot_imagens_2(im_3, 'original', img_eq, 'equalizada', (20, 20))
import cv2
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
from pylab import *
im_cv1 = cv2.imread(path + 'psg_praia.jpg')
im_i1 = array(Image.open(path + 'psg_praia.jpg'))
plot_imagens_2(im_cv1, 'OpenCV', im_i1, 'Image', (20, 20))
im_cv1_c = cv2.cvtColor(im_cv1, cv2.COLOR_BGR2RGB)
plot_imagens_2(im_cv1_c, 'OpenCV_C', im_i1, 'Image', (20, 20))
imshow(im_cv1_c)
<matplotlib.image.AxesImage at 0x123ba319850>
im_r = im_cv1_c[550:610, 790:1000]
imshow(im_r)
<matplotlib.image.AxesImage at 0x123ba3ddfa0>
im_coco = im_cv1_c[70:120, 170:280]
imshow(im_coco)
<matplotlib.image.AxesImage at 0x123ba45a7c0>
im_coco
array([[[ 17, 13, 10],
[ 11, 7, 6],
[ 9, 3, 5],
...,
[ 42, 50, 0],
[ 51, 63, 0],
[129, 143, 64]],
[[ 24, 23, 21],
[ 10, 8, 9],
[ 1, 0, 4],
...,
[ 51, 59, 0],
[ 85, 97, 23],
[112, 126, 47]],
[[ 15, 19, 20],
[ 10, 14, 17],
[ 2, 5, 12],
...,
[ 60, 68, 8],
[ 83, 94, 18],
[102, 115, 35]],
...,
[[ 78, 72, 38],
[ 64, 58, 32],
[ 45, 37, 26],
...,
[ 67, 61, 35],
[ 40, 36, 9],
[ 32, 30, 5]],
[[ 64, 58, 34],
[ 43, 37, 25],
[ 48, 42, 44],
...,
[ 47, 40, 12],
[ 71, 65, 39],
[ 65, 64, 36]],
[[ 34, 30, 18],
[ 31, 27, 26],
[ 80, 76, 90],
...,
[ 30, 23, 0],
[ 63, 58, 29],
[ 37, 36, 8]]], dtype=uint8)
pwd
'E:\\IAM'
cv2.imwrite('ilha.jpg', im_r)
True
im_cv1_c.shape
(900, 1277, 3)
im_red = im_cv1_c[:, :, 0]
im_green = im_cv1_c[:, :, 1]
im_blue = im_cv1_c[:, :, 2]
plot_imagens_3(im_red, 'R', im_green, 'G', im_blue, 'B', (20,20))
plot_imagens_2(im_red, 'R', im_cv1_c, 'Original', (20, 20))
plot_imagens_2(im_blue, 'B', im_cv1_c, 'Original', (20, 20))
plot_imagens_2(im_green, 'G', im_cv1_c, 'Original', (20, 20))
im_b, im_g, im_r = cv2.split(im_cv1_c)
imshow(im_b)
<matplotlib.image.AxesImage at 0x123c05125e0>
im_ori = cv2.merge((im_b, im_g, im_r))
imshow(im_ori)
<matplotlib.image.AxesImage at 0x123ba3ba8e0>
im_cv1_hsv = cv2.cvtColor(im_cv1, cv2.COLOR_BGR2HSV)
im_h, im_s, im_v = cv2.split(im_cv1_hsv)
plot_imagens_3(im_h, 'H', im_s, 'S', im_v, 'V', (20,20))
import numpy as np
im_ar2 = cv2.imread(path + 'arara2.jpg')
im_ar2_hsv = cv2.cvtColor(im_ar2, cv2.COLOR_BGR2HSV)
lim_ini = np.array([120, 30, 0])
lim_fim = np.array([179, 255, 255])
templ_cor = cv2.inRange(im_ar2_hsv, lim_ini, lim_fim)
saida = cv2.bitwise_and(im_ar2, im_ar2, mask=templ_cor)
cv2.imshow('Resultado', np.hstack((im_ar2, saida)))
cv2.waitKey(0)
cv2.destroyAllWindows()
im_reduzida = cv2.resize(im_ar2, None, fx = .25, fy = .25,
interpolation = cv2..INTER_CUBIC)
im_ar2_hsv.shape
(450, 384, 3)
im_reduzida.shape
(112, 96, 3)
plot_imagens_2(im_ar2, 'Original', im_reduzida, 'Reduzida', (20,20))
imshow(im_v)
<matplotlib.image.AxesImage at 0x123c23b0eb0>
shape(im_v)
(900, 1277)
im_vT = im_v.T
shape(im_vT)
(1277, 900)
imshow(im_vT)
<matplotlib.image.AxesImage at 0x123bf859e50>
im_vct = cv2.transpose(im_ar2)
plot_imagens_2(im_ar2, 'Original', im_vct, 'Transposta', (20,20))
im_p1 = cv2.imread(path + 'pegada1.jpg')
im_p1_c = cv2.cvtColor(im_p1, cv2.COLOR_BGR2RGB)
im_p2 = cv2.imread(path + 'pegada_2.jpg')
im_p2_c = cv2.cvtColor(im_p2, cv2.COLOR_BGR2RGB)
shape(im_p1_c), shape(im_p2_c)
((174, 403, 3), (178, 398, 3))
im_p2_c_r = cv2.resize(im_p2_c, (403, 174))
plot_imagens_3(im_p1_c, 'Im1',
im_p2_c_r, 'Im2',
(im_p1_c - im_p2_c_r), 'Diferença', (20, 20))
plot_imagens_2(im_p1_c, 'P1', im_p2_c, 'P2', (20,20))
pathv = "E:/IAM/imagens_am/video/"
video = cv2.VideoCapture(pathv + 'mont_russa.mp4')
cont_frames = 0
while(True):
ret, frame = video.read()
if ret:
nome = pathv + '_' + "{0:03}".format(cont_frames) + '.jpg'
print(nome)
cv2.imwrite(nome, frame)
cont_frames += 1
else:
break
print('Fim da geração.')
E:/IAM/imagens_am/video/_000.jpg E:/IAM/imagens_am/video/_001.jpg E:/IAM/imagens_am/video/_002.jpg E:/IAM/imagens_am/video/_003.jpg E:/IAM/imagens_am/video/_004.jpg E:/IAM/imagens_am/video/_005.jpg E:/IAM/imagens_am/video/_006.jpg E:/IAM/imagens_am/video/_007.jpg E:/IAM/imagens_am/video/_008.jpg E:/IAM/imagens_am/video/_009.jpg E:/IAM/imagens_am/video/_010.jpg E:/IAM/imagens_am/video/_011.jpg E:/IAM/imagens_am/video/_012.jpg E:/IAM/imagens_am/video/_013.jpg E:/IAM/imagens_am/video/_014.jpg E:/IAM/imagens_am/video/_015.jpg E:/IAM/imagens_am/video/_016.jpg E:/IAM/imagens_am/video/_017.jpg E:/IAM/imagens_am/video/_018.jpg E:/IAM/imagens_am/video/_019.jpg E:/IAM/imagens_am/video/_020.jpg E:/IAM/imagens_am/video/_021.jpg E:/IAM/imagens_am/video/_022.jpg E:/IAM/imagens_am/video/_023.jpg E:/IAM/imagens_am/video/_024.jpg E:/IAM/imagens_am/video/_025.jpg E:/IAM/imagens_am/video/_026.jpg E:/IAM/imagens_am/video/_027.jpg E:/IAM/imagens_am/video/_028.jpg E:/IAM/imagens_am/video/_029.jpg E:/IAM/imagens_am/video/_030.jpg E:/IAM/imagens_am/video/_031.jpg E:/IAM/imagens_am/video/_032.jpg E:/IAM/imagens_am/video/_033.jpg E:/IAM/imagens_am/video/_034.jpg E:/IAM/imagens_am/video/_035.jpg E:/IAM/imagens_am/video/_036.jpg E:/IAM/imagens_am/video/_037.jpg E:/IAM/imagens_am/video/_038.jpg E:/IAM/imagens_am/video/_039.jpg E:/IAM/imagens_am/video/_040.jpg E:/IAM/imagens_am/video/_041.jpg E:/IAM/imagens_am/video/_042.jpg E:/IAM/imagens_am/video/_043.jpg E:/IAM/imagens_am/video/_044.jpg E:/IAM/imagens_am/video/_045.jpg E:/IAM/imagens_am/video/_046.jpg E:/IAM/imagens_am/video/_047.jpg E:/IAM/imagens_am/video/_048.jpg E:/IAM/imagens_am/video/_049.jpg E:/IAM/imagens_am/video/_050.jpg E:/IAM/imagens_am/video/_051.jpg E:/IAM/imagens_am/video/_052.jpg E:/IAM/imagens_am/video/_053.jpg E:/IAM/imagens_am/video/_054.jpg E:/IAM/imagens_am/video/_055.jpg E:/IAM/imagens_am/video/_056.jpg E:/IAM/imagens_am/video/_057.jpg E:/IAM/imagens_am/video/_058.jpg E:/IAM/imagens_am/video/_059.jpg E:/IAM/imagens_am/video/_060.jpg E:/IAM/imagens_am/video/_061.jpg E:/IAM/imagens_am/video/_062.jpg E:/IAM/imagens_am/video/_063.jpg E:/IAM/imagens_am/video/_064.jpg E:/IAM/imagens_am/video/_065.jpg E:/IAM/imagens_am/video/_066.jpg E:/IAM/imagens_am/video/_067.jpg E:/IAM/imagens_am/video/_068.jpg E:/IAM/imagens_am/video/_069.jpg E:/IAM/imagens_am/video/_070.jpg E:/IAM/imagens_am/video/_071.jpg E:/IAM/imagens_am/video/_072.jpg E:/IAM/imagens_am/video/_073.jpg E:/IAM/imagens_am/video/_074.jpg E:/IAM/imagens_am/video/_075.jpg E:/IAM/imagens_am/video/_076.jpg E:/IAM/imagens_am/video/_077.jpg E:/IAM/imagens_am/video/_078.jpg E:/IAM/imagens_am/video/_079.jpg E:/IAM/imagens_am/video/_080.jpg E:/IAM/imagens_am/video/_081.jpg E:/IAM/imagens_am/video/_082.jpg E:/IAM/imagens_am/video/_083.jpg E:/IAM/imagens_am/video/_084.jpg E:/IAM/imagens_am/video/_085.jpg E:/IAM/imagens_am/video/_086.jpg E:/IAM/imagens_am/video/_087.jpg E:/IAM/imagens_am/video/_088.jpg E:/IAM/imagens_am/video/_089.jpg E:/IAM/imagens_am/video/_090.jpg E:/IAM/imagens_am/video/_091.jpg E:/IAM/imagens_am/video/_092.jpg E:/IAM/imagens_am/video/_093.jpg E:/IAM/imagens_am/video/_094.jpg E:/IAM/imagens_am/video/_095.jpg E:/IAM/imagens_am/video/_096.jpg E:/IAM/imagens_am/video/_097.jpg E:/IAM/imagens_am/video/_098.jpg E:/IAM/imagens_am/video/_099.jpg E:/IAM/imagens_am/video/_100.jpg E:/IAM/imagens_am/video/_101.jpg E:/IAM/imagens_am/video/_102.jpg E:/IAM/imagens_am/video/_103.jpg E:/IAM/imagens_am/video/_104.jpg E:/IAM/imagens_am/video/_105.jpg E:/IAM/imagens_am/video/_106.jpg E:/IAM/imagens_am/video/_107.jpg E:/IAM/imagens_am/video/_108.jpg E:/IAM/imagens_am/video/_109.jpg E:/IAM/imagens_am/video/_110.jpg E:/IAM/imagens_am/video/_111.jpg E:/IAM/imagens_am/video/_112.jpg E:/IAM/imagens_am/video/_113.jpg E:/IAM/imagens_am/video/_114.jpg E:/IAM/imagens_am/video/_115.jpg E:/IAM/imagens_am/video/_116.jpg E:/IAM/imagens_am/video/_117.jpg E:/IAM/imagens_am/video/_118.jpg E:/IAM/imagens_am/video/_119.jpg E:/IAM/imagens_am/video/_120.jpg E:/IAM/imagens_am/video/_121.jpg E:/IAM/imagens_am/video/_122.jpg E:/IAM/imagens_am/video/_123.jpg E:/IAM/imagens_am/video/_124.jpg E:/IAM/imagens_am/video/_125.jpg E:/IAM/imagens_am/video/_126.jpg E:/IAM/imagens_am/video/_127.jpg E:/IAM/imagens_am/video/_128.jpg E:/IAM/imagens_am/video/_129.jpg E:/IAM/imagens_am/video/_130.jpg E:/IAM/imagens_am/video/_131.jpg E:/IAM/imagens_am/video/_132.jpg E:/IAM/imagens_am/video/_133.jpg E:/IAM/imagens_am/video/_134.jpg E:/IAM/imagens_am/video/_135.jpg E:/IAM/imagens_am/video/_136.jpg E:/IAM/imagens_am/video/_137.jpg E:/IAM/imagens_am/video/_138.jpg E:/IAM/imagens_am/video/_139.jpg E:/IAM/imagens_am/video/_140.jpg E:/IAM/imagens_am/video/_141.jpg E:/IAM/imagens_am/video/_142.jpg E:/IAM/imagens_am/video/_143.jpg E:/IAM/imagens_am/video/_144.jpg E:/IAM/imagens_am/video/_145.jpg E:/IAM/imagens_am/video/_146.jpg E:/IAM/imagens_am/video/_147.jpg E:/IAM/imagens_am/video/_148.jpg E:/IAM/imagens_am/video/_149.jpg E:/IAM/imagens_am/video/_150.jpg E:/IAM/imagens_am/video/_151.jpg E:/IAM/imagens_am/video/_152.jpg E:/IAM/imagens_am/video/_153.jpg E:/IAM/imagens_am/video/_154.jpg E:/IAM/imagens_am/video/_155.jpg E:/IAM/imagens_am/video/_156.jpg E:/IAM/imagens_am/video/_157.jpg E:/IAM/imagens_am/video/_158.jpg E:/IAM/imagens_am/video/_159.jpg E:/IAM/imagens_am/video/_160.jpg E:/IAM/imagens_am/video/_161.jpg E:/IAM/imagens_am/video/_162.jpg E:/IAM/imagens_am/video/_163.jpg E:/IAM/imagens_am/video/_164.jpg E:/IAM/imagens_am/video/_165.jpg E:/IAM/imagens_am/video/_166.jpg E:/IAM/imagens_am/video/_167.jpg E:/IAM/imagens_am/video/_168.jpg E:/IAM/imagens_am/video/_169.jpg E:/IAM/imagens_am/video/_170.jpg E:/IAM/imagens_am/video/_171.jpg E:/IAM/imagens_am/video/_172.jpg E:/IAM/imagens_am/video/_173.jpg E:/IAM/imagens_am/video/_174.jpg E:/IAM/imagens_am/video/_175.jpg E:/IAM/imagens_am/video/_176.jpg E:/IAM/imagens_am/video/_177.jpg E:/IAM/imagens_am/video/_178.jpg E:/IAM/imagens_am/video/_179.jpg E:/IAM/imagens_am/video/_180.jpg E:/IAM/imagens_am/video/_181.jpg E:/IAM/imagens_am/video/_182.jpg E:/IAM/imagens_am/video/_183.jpg E:/IAM/imagens_am/video/_184.jpg E:/IAM/imagens_am/video/_185.jpg E:/IAM/imagens_am/video/_186.jpg E:/IAM/imagens_am/video/_187.jpg Fim da geração.